﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharedLib.WinFormMVCFramework;
using Tracy.DataModel;
using SharedLib;

namespace TracyGUI.View.EntryTabs
{
    interface ITagView : IView
    {
        event EventHandler<GenericEventArgs<Tag>> TagAssigning;
        event EventHandler<GenericEventArgs<Tag>> TagRemoving;
        event EventHandler<DataChangedEventArgs<Tag>> TagUpdating;

        event EventHandler WillAddTag;
        event EventHandler<GenericEventArgs<Tag>> WillUpdateTag;

        event EventHandler<GenericEventArgs<string>> CategorySelected;

        void LoadTags(List<Tag> tags, bool clearView = true);
        void RemoveTag(Tag tag);
        void UpdateTag(Tag oldTag, Tag newTag);
        void LoadCategories(List<string> categories);
        void BeginAddTag(string defaultCategory);
        void BeginEditTag(Tag tag);
        void EndEditTag();
        void SetRecommendedValues(List<string> values);
    }
}
